package top.xunfong.knowledge.service;

import top.xunfong.knowledge.dto.*;
import top.xunfong.knowledge.vo.*;

/**
 * 分片上传
 *
 * @author: xunfong
 * @date: 2025/11/5 5:05
 */
public interface MultipartService {

    /**
     * 初始化分片上传
     *
     * @param dto 初始化分片上传的请求参数
     * @return 初始化分片上传的响应结果
     */
    InitiateMultipartUploadVO initiateMultipartUpload(InitiateMultipartUploadDTO dto);

    /**
     * 上传分片
     *
     * @param dto 上传分片的请求参数
     * @return 上传分片的响应结果
     */
    UploadPartVO uploadPart(UploadPartDTO dto);

    /**
     * 合并分片
     *
     * @param dto 合并分片的请求参数
     * @return 合并分片的响应结果
     */
    CompleteMultipartUploadVO completeMultipartUpload(CompleteMultipartUploadDTO dto);

    /**
     * 取消分片上传
     *
     * @param dto 取消分片上传的请求参数
     * @return 取消分片上传的响应结果
     */
    AbortMultipartUploadVO abortMultipartUpload(AbortMultipartUploadDTO dto);
}
